Skip to content

Re-vendor 0.7.6 and the 0.7.7 preview from forge-cli v0.27.0 - #53

Merged
fas89 merged 2 commits into
open-data-protocol:mainfrom
fas89:chore/revendor-v0.27.0
Nov 4, 2026
Merged

fas89 merged 2 commits into
open-data-protocol:mainfrom
fas89:chore/revendor-v0.27.0

Conversation

@fas89

@fas89 fas89 commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator

Moves the pin from forge-cli v0.21.0 to v0.27.0 (peeled c0e97c076f735205f4767f67f0bd05bcd78a47cd). 0.7.6 has been the stable schema there since 0.26.0, and 0.7.7 is the preview.

What changes

  • Schemas. 0.7.2–0.7.5 are byte-identical to the copies here and stay as they are. fluid-schema-0.7.6.json is replaced and fluid-schema-0.7.7.json added, both byte for byte from the tag. scripts/schema-versions.json: latestStable 0.7.6, preview ["0.7.7"], synced through 0.7.7.
  • Generated output. specs/0.7.6, specs/0.7.7 and schema-diffs/ (including the new diff-0.7.6-to-0.7.7) come from the locked renderer.
  • Corpus, 0.7.6. tests/0.7.6/trigger-continuous.json pins trigger.type: continuous (forge-cli #734): it is refused beside cron, schedule, datasets, event and timetable, and a non-object trigger gets exactly one error. tests/0.7.6/bitol-fields.json pins the Bitol-shaped fields 0.7.6 gained after v0.21.0. Descriptions lose the word "preview".
  • Corpus, 0.7.7. tests/0.7.7/ and tests/optional/0.7.7/ start from the 0.7.6 corpus. Three groups are added: stream-source, record-mapping and nested-columns.
  • tests/meta_test.py. The stray-schema fixture used 0.7.7, which is now synced, so it uses 0.7.8. The gate is unchanged.
  • Docs. docs/releases/0.7.6.md becomes the stable page. docs/releases/0.7.7.md is new. docs/schema/changelog.md and every status line now say 0.7.6 stable and 0.7.7 preview.

Gates (all exit 0)

Gate Result
tests/meta_test.py 50/50
conformance/run.py 1958 cases pass
conformance/mutation_coverage.py --min-coverage 40 0.7.5 41.0%; 0.7.6 45.7% (41.7% without the new cases); 0.7.7 48.2% (39.7% without)
conformance/check_reference.py against data-product-forge 0.27.0 1958 cases, 0 disagree; the same 6 optional format cases as before are not implemented
scripts/check-compat.py 0.7.6 to 0.7.7: 0 breaking, 2 additive
scripts/check-schema-drift.py every synced schema matches v0.27.0
generate-docs.py --check, generate-schema-diffs.py --check clean
npm run docs:build clean

For the maintainer

  1. A rule outside the schema. fluid validate 0.27.0 refuses a map column whose key is not a required string ("supported map keys are required strings"), but the 0.7.7 schema accepts one. The valid map cases here declare required: true, so both agree, and 0.7.7.md notes the rule as non-normative. Keep it that way, add an optional-tier case, or raise it upstream?
  2. Depth of the 0.7.6 promotion. Status text, the quickstart, the minimal contract and the cheatsheet rows moved to 0.7.6. These still use 0.7.5, which 0.7.6 still accepts: the specification.md section 1 tables, the anatomy.md YAML blocks and examples 1–13. A rewrite against 0.7.6 would be a separate pass, like docs: state 0.7.5 stable and 0.7.6 preview, rewrite the specification against 0.7.5, and make every example validate #51.
  3. package.json says 0.7.5 and package-lock.json 0.7.4. Neither is touched here.

fas89 added 2 commits November 4, 2026 12:08
… what they refuse

forge-cli v0.27.0 (peeled c0e97c07) bundles 0.7.6 as the stable schema,
which it has been since 0.26.0, and 0.7.7 as the preview. 0.7.2 to 0.7.5
are byte-identical to the copies here, so only 0.7.6 is replaced and 0.7.7
is added, both byte for byte; specs/ and schema-diffs/ are regenerated.

New cases:
- tests/0.7.6/trigger-continuous.json: trigger.type continuous (forge-cli
  #734, v0.22.0) beside cron, schedule, datasets, event and timetable, and
  one error for a non-object trigger.
- tests/0.7.6/bitol-fields.json: the Bitol-shaped fields 0.7.6 gained
  after v0.21.0.
- tests/0.7.7/: the 0.7.6 corpus at 0.7.7, plus stream-source,
  record-mapping and nested-columns groups.

Mutation coverage: 0.7.6 45.7% (41.7% with no new cases), 0.7.7 48.2%
(39.7%); the floor stays at 40. check_reference against 0.27.0: 1958
cases, 0 disagree.

meta_test.py's stray-schema fixture used 0.7.7, which is now synced; it
uses 0.7.8. The gate is unchanged.
- docs/releases/0.7.6.md is the stable release page, with
  trigger.type: continuous and the Bitol-shaped fields.
- docs/releases/0.7.7.md is new: nested columns, properties.stream and
  properties.mapping. The map-key rule that fluid validate applies beyond
  the schema is noted as non-normative.
- docs/schema/changelog.md and every status line say 0.7.6 stable and
  0.7.7 preview.
@fas89
fas89 merged commit 1ce159d into open-data-protocol:main Nov 4, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant